package com.baitengsoft.patentapimonitor.api.service;

import com.baitengsoft.patentapimonitor.api.entity.PacApplicantEntity;
import com.baitengsoft.patentapimonitor.api.model.PacApplicantInfo;
import com.baitengsoft.patentapimonitor.api.model.PacApplicantModel;
import com.baitengsoft.patentapimonitor.api.model.param.ClassifyByAreaParam;
import com.baitengsoft.patentapimonitor.api.model.param.ClassifyByIndustryParam;
import com.baitengsoft.patentapimonitor.api.model.param.ClassifyByTypeParam;
import com.baitengsoft.patentapimonitor.api.model.param.SearchApplicantParam;
import com.baitengsoft.patentapimonitor.common.utils.PageResult;
import com.baitengsoft.patentapimonitor.common.utils.Res;

import java.util.List;

/**
 * Created by QEK on 2017/12/21.
 */
public interface PacApplicantService extends BaseService<PacApplicantEntity> {
    @Deprecated
    PageResult<PacApplicantModel> pageQueryPacApplicant(SearchApplicantParam searchApplicantParam);
    @Deprecated
    Res classifyByIndustry(ClassifyByIndustryParam param);
    @Deprecated
    Res classifyByArea(ClassifyByAreaParam param);
    @Deprecated
    Res classifyByType(ClassifyByTypeParam param);
    @Deprecated
    PacApplicantModel selectPacApplicantById(Integer id);
    @Deprecated
    Res updateApplicantById(PacApplicantModel model,Integer id);

    /**
     * 查询未绑定区域权力人个数
     */
    int selectCountWithOutArea(Integer platformid);

    /**
     * 权力人管理分页查询
     */
    PageResult<PacApplicantInfo> queryList(Integer platformid, SearchApplicantParam param);

    /**
     * 获取权力人信息
     */
    PacApplicantInfo getApplicantInfo(Integer applicantId);

    /**
     * 根据权力人ID查询平台Id
     */
    Integer getPlatformIdByApplicantId(Integer applicantId);

    /**
     * 查询该平台下所有权力人ID
     */
    List<Integer> getApplicantIdsByPlatfromId(Integer platformid);

    /**
     * 根据Id区域归类
     */
    void classifyAreaByIds(List<Integer> ids,Integer areaId);

    /**
     * 根据Id行业归类
     */
    void classifyIndustry(List<Integer> applicantIdList, List<Integer> industryIdList);

    /**
     * 修改权力人
     */
    Res updatePacApplicant(Integer platformId,PacApplicantInfo info);
}
